package com.extend_.ExtendsDetail;

/**
 * @Author 小闽
 * @Date 2024/8/9 10:37
 * @PackageName: com.extend_.ExtendsDetail
 * @ClassName: Sub
 * @Description: 子类
 * @Version 1.0
 */
public class Sub extends Base {
    // 无参构造器

    /**
     * 如果父类中有默认的构造器，则子类的构造器中可以不用指定使用父类的哪个构造器，但是
     * 如果父类中有显示的定义构造器，则在子类的构造器中必须使用super关键字指定使用父类的哪个关键字
     * 否则编译就会报错
     */
    public Sub(){
        super("smith", 10);
        System.out.println("子类无参构造器被调用...");
    }
    // 当创建子类对象时，不管使用子类的哪个构造器，默认情况下总会去调用父类的无参构造器。
    // 有参构造器(一个参数)
    public Sub(String name){
    // 如果希望指定去调用父类的某个构造器，则显式的调用一下：super(参数列表)。
    // super在使用时，必需放在构造器第一行。（super只能在构造器中使用）
        super("tom",10);
        System.out.println("子类有参构造器被调用...");
    }

    public void say(){
        System.out.println("n1=" + n1 + "n2=" + n2 + "n3=" + n3);
        callTest400();
    }
}
